//package com.yxtec.mina.client;
//
//import java.io.File;
//import java.net.InetSocketAddress;
//import java.nio.charset.Charset;
//import java.util.Random;
//
//import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
//import org.apache.mina.core.future.ConnectFuture;
//import org.apache.mina.core.service.IoConnector;
//import org.apache.mina.core.session.IdleStatus;
//import org.apache.mina.core.session.IoSession;
//import org.apache.mina.filter.codec.ProtocolCodecFilter;
//import org.apache.mina.filter.codec.textline.LineDelimiter;
//import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
//import org.apache.mina.transport.socket.nio.NioSocketConnector;
//
//import com.yxtec.model.RequestFile;
//import com.yxtec.util.MD5FileUtil;
//
///**
// * 客户端类
// * @author liaogd
// * @createDate	2013-12-18
// */
//public class MinaClient {
//	public static final int DECODER_MAX_LENGTH =  2 * 1024 * 1024;
//	public static final int ENCODER_MAX_LENGTH =  2 * 1024 * 1024;
//	
//	IoConnector connector;
//	/**
//	 * 空构造
//	 * @author liaogd
//	 * @createDate		2013-12-23
//	 */
//	public MinaClient() {
//
//	}
//
//	public void connect(int port, String host, final RequestFile echoFile) {
//		connector = new NioSocketConnector();
//
//		//采用windows的默认编码格式 \r\n
//		TextLineCodecFactory lineCodec = new TextLineCodecFactory(
//				Charset.forName("UTF-8"), LineDelimiter.WINDOWS.getValue(),
//				LineDelimiter.WINDOWS.getValue());
//		
//		lineCodec.setDecoderMaxLineLength(DECODER_MAX_LENGTH);
//		lineCodec.setEncoderMaxLineLength(ENCODER_MAX_LENGTH);
//		DefaultIoFilterChainBuilder chain = connector.getFilterChain();
//		chain.addLast("codec", new ProtocolCodecFilter(lineCodec));
//
//		connector.setHandler(new MinaClientHandler(echoFile));
//		
//		//60秒读写空闲
//		connector.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 60 * 2);
//		
//		ConnectFuture future = connector.connect(new InetSocketAddress(host,
//				port));
//		future.awaitUninterruptibly();
//		if (future.isConnected()) {
//			//IoSession session = future.getSession();
//			System.out.println("连接成功");
//		} else {
//			connector.dispose();
//			System.out.println("连接失败...");
//			// 连接不上抛出异常
//			// throw new Exception();
//		}
//	}
//
//	/**
//	 * 关闭连接
//	 * @author liaogd
//	 * @createDate		2013-12-23
//	 * @param connector			连接对象
//	 * @param session			连接会话
//	 */
//	public void disposeCon(IoConnector connector, IoSession session) {
//		session.getCloseFuture().awaitUninterruptibly();// 等待连接端口
//		connector.dispose();
//	}
//
//	public static void main(String[] args) {
//		int port = 10013;
//		try {
//			for (int i = 1; i < 7; i++) {
//				RequestFile echo = new RequestFile();
//				File file = new File("D://temp/pic/"+i+".jpg");
//				Random r = new Random();
//				long begin = System.currentTimeMillis();
//				String fileName = file.getName();// 文件名
//				echo.setFile(file);
//				echo.setFile_md5(MD5FileUtil.getFileMD5String(file));
////				echo.setFile_md5(r.nextInt(80000000)+"");
//				echo.setFile_name(fileName);
//				echo.setFile_type(getSuffix(fileName));
//				echo.setStarPos(0);// 文件开始位置
//				
//				echo.setCustomerID("CU201502270034");
//				echo.setOnlineID("1243EE18-42BE-45A9-A867-89C467FAE275");
//				echo.setScanBillID("SC201503080001");
//				echo.setApplyBillID("9739D4CFA6CAD63F");
//				echo.setProject("kc");
//				echo.setUploadType("2");
//				echo.setReportType("1");
//				new MinaClient().connect(port, "210.83.236.190", echo);
////				new MinaClient().connect(port, "127.0.0.1", echo);
//				long end = System.currentTimeMillis();
//				System.out.println(i+"################");
//				System.out.println("time:" + ((end - begin)) +"  i:"+i);
////				Thread.sleep(1000);
//			}
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//	}
//
//	private static String getSuffix(String fileName) {
//		String fileType = fileName.substring(fileName.lastIndexOf("."),
//				fileName.length());
//		return fileType;
//	}
//
//}
